Method and apparatus for tracking connection-oriented communications configurations

ABSTRACT

A network is monitored for reports indicative of a connection state among ports of a communications network. Certain ports are designated as being in a transition, and a transition table is created for each transition. The transition table includes locations that directly relate the connectivity of a first port with respect to a second port, as well as locations that relate the connectivity of other ports. The contents of the transition table are evaluated to determine the likely configuration of the communications network. State machines may be used to resolve conflicting data within the transition table, by providing a likely connection output based upon different entries within the transition table. A voting scheme is used to evaluate the outputs of the state machines and update the transition table when appropriate, and the updated transition table may also be evaluated.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] This invention relates generally to communications networks, andmore particularly to monitoring and tracking connection configurationswithin connection-oriented communications networks.

[0003] 2. Discussion of the Related Art

[0004] Communications networks provide a capability for one device,referred to as a source, to transmit data to another device, referred toas a destination. Among the conventional types of communications areconnection-oriented communications and connectionless communications.

[0005] In connection-oriented communications, a logical association isestablished between the source and the destination, so that severalseparate groups of data may be sent along the same path that is definedby the logical association. This is distinguished from connectionlesscommunications, in which the source transmits data to the destination inan unplanned fashion and without prior coordination. In connectionlesscommunications, each frame of data is transmitted from the source to thedestination in a manner independent from the manner in which otherframes are transmitted from the source to the destination. Bridges androuters are commonly used in connectionless communications.

[0006] Three phases generally occur during connection-orientedcommunications, including connection establishment, data transfer,connection termination. These three phases together are commonly calleda session, which may be monitored and controlled by a central authority.In the connection establishment phase, the first time a source has datato be sent to a destination, a logical association, also called theconnection or a path, is established between the source and thedestination. The connection defines elements and connections between theelements, for example, switches between the source and the destination,and the ports of the switches through which the data will pass from thesource to the destination.

[0007] A switch, and other devices similar in operation to a switch, maybe referred to as a node, intermediate system, interface messageprocessor, or gateway. A port is an interface on a switch or similardevice that provides a physical communication path to other devices, forexample to other ports of other switches. During the data transferphase, data is transmitted from the source to the destination along theconnection, which includes the port-to-port connections of the switches.After a certain amount of time, or at the occurrence of a certain event,the session enters the connection termination phase, in which theconnection is terminated, and the elements which made up the connectionare freed to support other connections.

[0008] There may be a large number of connections which represents avery large and complex amount of connection information for a centralauthority to monitor. Additionally, some connections may fail, due toelectrical problems or physical or logical removal of any of theelements which make up the connection. For example, a switch may beremoved for maintenance or to achieve a more advantageous physicalarrangement for other connections. It would thus be desirable to providea monitoring capability for tracking connections in aconnection-oriented communications network.

SUMMARY OF THE INVENTION

[0009] According to several aspects of the present invention, a networkis monitored for reports indicative of a connection state among ports ofa communications network. Certain ports are designated as being in atransition (e.g., new connections being made or old connections beingbroken), and a transition table is created for each transition. Thetransition table includes locations (the intersection of a row andcolumn, where a value is stored) that directly relate the connectivityof a first port with respect to a second port, as well as locations thatrelate the connectivity of other ports. The contents of the transitiontable are evaluated to determine the likely configuration of thecommunications network. State machines may be used to resolveconflicting data within the transition table, by providing a likelyconnection output based upon different entries within the transitiontable. A voting scheme may also be used to evaluate the outputs of thestate machines and update the transition table when appropriate, and theupdated transition table may also be evaluated.

[0010] In one embodiment, a method is provided for tracking aconfiguration of a plurality of ports of a communications network. Themethod comprises the steps of determining whether any of the pluralityof ports are in a transition with respect to the configuration of theplurality of ports, collecting data associated with the transition, andanalyzing the data associated with the transition to determine theconfiguration of the plurality of ports. The step of collecting data mayinclude receiving a report that includes an indication that a reportingport either has a connection or has lost a connection with respect to aneighbor port. The method may include waiting a predetermined amount oftime prior to analyzing the data.

[0011] The step of collecting data may also include entering informationfrom the report into a transition table that is associated with one ofthe reporting port and the neighbor port. The transition table mayinclude locations populated with one of at least three different states.Additionally, the step of analyzing may include determining a likelihoodof a connection between the reporting port and the neighbor port basedupon locations of the transition table that either do or do not directlyrelate to the reporting port and the neighbor port.

[0012] The step of analyzing may include providing a first number ofvotes based upon data within the locations of the transition table thatdirectly relate to the reporting port and the neighbor port, providing asecond number of votes based upon data within the locations of thetransition table that do not directly relate to the reporting port andthe neighbor port, and evaluating the votes to determine a likelihood ofa connection between the reporting port and the neighbor port.Additionally, data within the locations of the transition table thatdirectly relate to the reporting port and the neighbor port may beupdated based upon the votes to provide updated data, and the likelihoodof a connection between the reporting port and the neighbor port may bedetermined based upon the updated data.

[0013] When a transition table associated with at least one of thereporting port and the neighbor port does not already exist, a newtransition table may be created. Additionally, a merged transition tablemay be created by merging a first transition table associated with thereporting port with a second transition table associated with theneighbor port.

[0014] Another aspect of the invention is directed to an apparatus fortracking a configuration of a plurality of ports of a communicationsnetwork, comprising means for determining whether any of the pluralityof ports are in a transition with respect to the configuration of theplurality of ports, means for collecting data associated with thetransition, and means for analyzing the data associated with thetransition to determine the configuration of the plurality of ports.

[0015] Another embodiment of the invention is directed to an apparatusfor tracking a configuration of a plurality of ports of a communicationsnetwork. The apparatus comprises an event stream filter that providesdata associated with at least one transition of the communicationsnetwork, at least one transition table, each of which corresponds to arespective one of the at least one transition of the communicationsnetwork, and a transition manager that provides a link list indicativeof the configuration of the plurality of ports based upon the data ofthe at least one transition table.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Other features and advantages of the present invention shallappear from the following description of an exemplary embodiment, saiddescription being made with reference to the appended drawings, ofwhich:

[0017]FIG. 1 illustrates a network having connection-orientedcommunications, which is monitored by a topology manager;

[0018]FIG. 2 shows the operation of the topology manager illustrated inFIG. 1;

[0019]FIG. 3A illustrates a state matrix used to monitor theconfiguration of a network;

[0020]FIG. 3B shows an example of a network topology represented by thestate matrix of FIG. 3A;

[0021]FIG. 3C is a representation of the connections of the networktopology of FIG. 3B;

[0022]FIG. 4 depicts an event stream resulting from a transition of anetwork from the topology illustrated in FIG. 3B;

[0023]FIG. 5A illustrates a state matrix resulting from the event streamof FIG. 4;

[0024]FIG. 5B shows a network topology that is a result of thetransition of the event stream of FIG. 4;

[0025]FIG. 5C is a representation of the connections of the networktopology of FIG. 5B;

[0026]FIG. 6 illustrates an embodiment of a topology manager inaccordance with an embodiment of the invention;

[0027]FIG. 7 is a flow diagram of a process performed by a topologymanager;

[0028]FIG. 8 is a state diagram showing states of a transition tableresulting from receipt of an event stream by the topology manager ofFIG. 6;

[0029]FIG. 9 shows detail of the creation and maintenance of atransition table in accordance with one embodiment of the topologymanager of FIG. 6;

[0030]FIG. 10A is a flow diagram showing one embodiment of a transitionanalysis function;

[0031]FIG. 10B is a flow diagram of another embodiment of the transitionanalysis function;

[0032]FIG. 11 shows detail of the trend analysis performed to evaluateand update locations of a transition table;

[0033]FIGS. 12, 13, and 14 illustrate state machines used to providevotes regarding possible connections based upon data of a transitiontable;

[0034]FIG. 15 shows steps of a method for evaluating the votes generatedby the state machines of FIGS. 12, 13, and 14; and

[0035]FIG. 16 shows a flow diagram for an embodiment of the trendanalysis iteration step of FIG. 11;

[0036]FIG. 17A illustrates an example transition table prior to trendanalysis; and

[0037]FIG. 17B illustrates the transition table of FIG. 17A subsequentto trend analysis.

DETAILED DESCRIPTION

[0038] In order to provide a monitoring capability to track connectionsof a connection-oriented communications network, a representation thatprovides a virtual (i.e., logical) portrayal the connections within anetwork may be developed and maintained. Within this disclosure, theterm “link” refers to a model, which may be contained within arepresentation of a network, of a connection between one port and atleast one other port. For example, a link may refer to a connectionbetween a first port and a second port. Such a connection may be asimple connection such as a single wire, or a more complex connectionsuch as an ETHERNET cable and associated local area network protocollayers. Additionally, the connection may include switches or hubs alongwith local area networks and other devices.

[0039]FIG. 1 shows a topology manager 10 which maintains a model of aconnection-oriented network, and in particular a model of the currentconfiguration of the elements of the network 12. As shown in FIG. 1, thetopology manger 10 receives an event stream 14 from several ports A-F.These ports A-F may be connected via a network 12, which may containseveral individual connections among the ports A-F. The event stream 14includes reports (i.e., messages) which provide information indicativeof current and past connections among the ports A-F of the network. Inone embodiment of the invention, the reports include a new neighborreport and a lost neighbor report. Each of these reports includes areporting port and is made with respect to a neighbor port. Typically,these reports are actually generated by a switch or another device whichcontains the reporting port, or from a source, destination, or othernodes within the network. For the purposes of this disclosure the reportmay be considered as being generated by the reporting port itself, sothat the phrase “port A generates a report” actually means “a device onthe network provides a report with port A included as the reportingport.”

[0040] A new neighbor report is an indication that the reporting porthas been connected to the neighbor port. The report “nn.Y” generated byport X represents a new neighbor report from reporting port X withrespect to new neighbor Y. A lost neighbor report is an indication thata particular connection that once existed has been lost between thereporting port and the neighbor port. The report “ln.Y” generated byport X represents a lost neighbor report from reporting port X withrespect to lost neighbor Y. Another type of report is a lost allneighbors report (“la”), which is indicative that a reporting port hasbeen disconnected from all other ports. For the purposes of thisdisclosure, a lost all neighbors report may be considered as a pluralityof individual lost neighbor reports. It is not necessary to have reportsof exactly these types, as long as some information indicative of achange or a current status of the port connections is provided.

[0041] As shown in FIG. 2, the topology manager 10 receives reports(step 22), generally in the form of an event stream 14, from the portsA-F of the network to be monitored by the topology manager 10. Thetopology manager 10 then builds a state matrix from the reports of theevent stream 14 (step 24), and determines the connections of the network12 from the contents of the state matrix (step 26). A description of astate matrix and the relationship between connections will be describedwith respect to FIGS. 3A-C and 5A-C.

[0042]FIG. 3A shows a state matrix 32 used to monitor the configurationof the network that includes six ports A-F. FIG. 3B shows the six portsA-F, as well as a first connection (link X) between port A and port B,and a second connection (link Y) between port C and port D. Port E andport F are shown as having no connection in FIG. 3B. The values filledinto the locations of each row of the state matrix 32 are made as aresult of reports made by a reporting port with respect to a neighborports. For example, the entries within row 321 of state matrix 32 showthat port A is connected to port B (designated “1”), but is notconnected to ports C, D, and E (designated “0”). The entries within row322 indicate that port B is connected to port A, but not to ports C, D,and E. Rows 323, 324, 325 and 326 show similar information regarding theconnections of ports C, D, E and F. The upper left to lower rightdiagonal of the state matrix 32 is an identity vector (designated ‘-”),which typically has no significance because it would represent a port'sconnection to itself.

[0043] From the data contained within a state matrix 32, a system suchas a topology manager 10 may determine the current connections of thenetwork 12, for example by reading across each row to determine whichports are connected to which other ports. The information of each rowmay be confirmed by information of another row. For example, theindication of row 321 that port A is connected to port B may beconfirmed by the indication of row 322 that port B is connected to portA. Such connections may be described in terms such as shown in FIG. 3C.FIG. 3C is an object representation of the links X and Y of the network12. The term X.ports=[A,B] is indicative that port A and port B areincluded in link X. The term Y.ports=[C,D] is indicative that port C andport D are included in link X.

[0044] When the network 12 undergoes a transition, for example newconnections being made or old connections being broken, then the portswill provide reports in the event stream 14, from which the topologymanager 10 may update the state matrix 32, and in turn determine thestatus of the links of the network 12. FIG. 4 depicts an event stream,including reports from ports A, B, C, D, E, and F, which may be made inresponse to a network 12 transitioning from a topology as shown in FIG.3B to a topology as shown in FIG. 5B. In particular, in this example,port D has been disconnected from port C, port D has been connected tothe connection that includes ports A and B, and ports E and F have beenconnected together. Port A has reported “nn.D” 41 (“new neighbor D”),indicative that port D is a new neighbor of port A. Port B has similarlyreported “nn.D” 42, indicative that port D is a new neighbor of port B.Port C has reported “la” 43 (“lost all neighbors”), indicative that portC has lost all neighbors, and now has no connection. Port D has reported“ln.C” 44 (“lost neighbor C”), indicative that port D has lost theconnection with port C, and “nn.A”45 and “nn.B” 46 indicative of the newconnections to ports A and B. Finally, ports E and F have reported theirnew connection, with reports, “nn.F” 47 and “nn.E” 48 respectively.

[0045]FIG. 5B represents the network connection configuration whichcaused the ports A-F to make the reports shown in FIG. 4. As shown inFIG. 5B, ports A, B, and D are connected together, port C is notconnected to any other port, and port E is connected to port F. FIG. 5Ashows state matrix 32 which has been updated to show the newconfiguration as a result of receiving the reports 41-48 shown in FIG.4. Finally, FIG. 5C shows terms which the topology manager may use todescribe the new connection arrangement. In particular, FIG. 5C showsX.ports=[A,B,D] and Z.ports=[E,F].

[0046] As shown in FIGS. 3A and 5A, it is possible that the informationof one row of the state matrix 32 confirms the connection information ofanother row. However, it is also possible that the state matrix 32contains contradictory or conflicting information. There may be severalreasons for this contradictory information, for example lostcommunications from the reporting ports, faults within the ports causinginaccurate reports, a transition in process, or reports received out oforder. If a port sends a report but the report is lost, then thereporting port column of the state matrix 32 will not be updated. Forexample, if report 42 from port B of FIG. 4 were lost, then the statematrix 32 would not have updated row 322 to show that port B isconnected to port D. In contrast, such a connection would have beenindicated by the report 46 from port D, and row 324 of the state matrix32 would have been updated to show that port B is connected to port D.The state matrix 32 would thus contain contradictory information,because row 322 and row 324 would indicate different topologies withrespect to a possible connection between port B and port D.

[0047] As mentioned above, contradictory information may also becontained within the state matrix 32 if faulty information is provided.For example, there may be a fault within port B so that port B eitherreported bad information or no new information at all.

[0048] Additionally, a state matrix 32 may contain contradictoryinformation simply because the network is in a transition. Typically,the reports 41-48 of FIG. 4 will not all arrive at the topology manger10 at precisely the same time, nor would the results of the reports beentered into the state matrix 32 at precisely the same time. Thus, ifsome but not all of the reports have been received, the state matrix 32will contain contradictory information. For example, this would be thecase if the report 42 had not arrived, but all other reports hadarrived. The delay in reports may be due to communication or processingdelays, or due to a situation in which the network 12 is beingreconfigured in response to other reconfigurations. For example, theconnection from port D to ports A and B may have been created becausethe connection between port D and port C was lost. In such an instance,the reports from the involved elements would not have been generated atthe same time.

[0049] Another cause of contradictory information may be the order inwhich reports of the event stream 14 are received by the topologymanager 10. If a report from a previous transition is received followinga report from a later transition, the state matrix 32 will overwrite thereport from the later transition with the report from the previoustransition, even though the later transition occurred after the previoustransition.

[0050] One approach to manage potentially contradictory informationwithin a state matrix 32 is to delay a certain amount of time beforemaking any decisions from the state matrix 32, regarding theconfiguration of a network 12. However, this approach is only effectiveif ultimately the appropriate reports arrive that negates thecontradictory information. If the contradictory information was theresult of a lost message, the appropriate report may never arrive.

[0051] Another approach to manage potentially contradictory informationis an embodiment of this invention, as shown in FIG. 6. FIG. 6 shows atopology manager 60 that receives the event stream 14. The topologymanager 60 includes an event stream filter 602 that receives the eventstream 14. The topology manager also includes a reconfiguration manager604, discovery controller 606, transition controller 608, and transitionmanager 610. Also connected to the transition manger 610, and availableto the other elements of the topology manger 60, are transition tables612 a, 612 b, . . . 612 n, port dictionary 614, and link list 616. Oneembodiment of the transition manager 610 is also shown in FIG. 6, whichincludes a transition timer 618, transition analyzer 620, transitiontable manager 622, and transition table merger 624. The transitionanalyzer 620 is also connected to a missing lost all module 626, anisolated ports module 628, and a trend analysis module 630. The trendanalysis module is connected to a direct state machine 632, an inferencestate machine 634 to be used when there are two links anticipated, andan inference state machine 636 to be used when there are more than twolinks anticipated.

[0052] The topology manager 60 may be implemented as a software module,for example an object-oriented software module. For example, the linklist 616 may include an object representation “link X.ports=[A,B,C]” fora connection called “X” that includes ports A, B, and C. Inobject-oriented terminology, this would mean that X is an instantiationof a class called link, and contains individual objects A, B, and C.Such an approach may be useful for maintaining relationships(connections) between the ports of a network, as well as maintainingattributes (data) of the ports.

[0053] Additionally, in one embodiment, the different sub-elements ofthe topology manager 60 are implemented as software on a floppy disk orhard drive, which controls a computer, for example a general purposecomputer such as a workstation, a mainframe or a personal computer, toperform steps of the disclosed processes. Such a general purposecomputer may be connected to the network in order to receive reports,and may provide commands to devices on the network in order to controlthe network configuration.

[0054] Alternatively, the sub-elements of the topology manager 60 may beimplemented as special purpose electronic hardware. Additionally, ineither a hardware or software embodiment, the functions performed by thedifferent elements within the topology manager 60 may be combined indifferent arrangements.

[0055] Operation of the topology manager 60 is depicted in FIG. 7. Asshown in FIG. 7, the topology manager receives reports from ports (step70). As mentioned earlier, the reports may be included within the eventstream 14. As a result of the reports received in step 70, a transitiontable is created and maintained for each transition (step 72).Generally, the topology manager 60 will initiate a transition as aresult of receiving a report that is indicative of one port reporting achange, for example a new neighbor port or a lost neighbor port.Additionally, when it is deemed appropriate, each transition is analyzed(step 74) in order to determine the current connections. In general, thetransition will be resolved to be one of four states. These four statesinclude one or more ports being isolated from a link, a link having beenpartitioned, multiple links having been merged into a single link, or anumber of links having been moved from a previous link to a successorlink. The resolution, determined as a result of step 74, may include alink list 616 which takes the form of the lists of FIGS. 3C and 5C. As aresult of the resolution in which current connections are determined,the appropriate circuits of the network 12 may be reconfigured byreconfiguration manager 604 in order that the network 12 conforms withthe current connections.

[0056]FIG. 8 shows a state diagram for an embodiment of the invention inwhich each location within a transition matrix 612 may be one of sevendifferent states; this is one aspect of the invention which facilitatestracking connection configurations in the presence of potentialcontradictory information. These states are shown in the legend of FIG.8 as follows:

[0057]0: Confirmed Not Connected

[0058]1: Confirmed Connected

[0059]2: Capture Connected

[0060]3: Assumed Not Connected

[0061]4: Undetermined

[0062]5: Capture Not Connected

[0063]6: Assumed Connected

[0064] State 1, confirmed connected, and state 0, confirmed notconnected, are similar to the “1” and “0” entries within a state matrix32. State 4 is an undetermined state, which typically represents asituation in which there is no information regarding a possibleconnection. States 3 and 6 may be used to represent, for example, thatsome prior information is indicative of either a connection (state 6) ora lack of a connection (state 3), but confirmation has not beenreceived. From state 3, a report can cause a change of state to eitherstate 1 confirmed connected, or state 5 capture not connected. Fromstate 5, an additional report can cause the state to be changed to state0 confirmed not connected. From state 6, a report can cause a change ofstate to either state 0 confirmed not connected, or state 2 captureconnected. From state 2, an additional report can cause the state to bechanged to state 1 confirmed connected.

[0065]FIG. 8 also shows the transitions between the different statesthat are made by the transition table manager 622 as a result of thetopology manager 60 receiving reports regarding a relationship betweentwo ports, for example the “nn” and “ln” reports in FIG. 8. For example,if a particular location of the transition table 612 a that representsreporting Port A with respect to neighbor Port B, is currently in state4, undetermined, and then the topology manager 60 receives a “nn” fromport A with respect to port B, then the particular location of thetransition table 612 a will be changed from a “4” to a “1”, indicatingthat port A believes that port A is connected to port B. The statediagram of FIG. 8 shows similar transitions for other informationreceived based upon a previous state. Initialization rules may beapplied in order to initialize each location of a transition table 612.One example of such a rule is that each location may be initialized tostate 4, undetermined. However, a topology manager 60 may have otherinformation, perhaps manually entered by a user, regarding the potentialstate of each connection within a network 12, so that some locations maybe initialized to either state 6 assumed connected, or state 3 assumednot connected.

[0066] An example of operation of the transition table manager 622 isdepicted in FIG. 9. In step 80, a report is received from a reportingport regarding a neighbor port. The transition table manager 622determines whether either the reporting port or the neighbor port iscurrently involved in a transition 612 a, . . . 612 n. If not, then instep 84 a new transition table 612 is created, and the information fromthe report is entered into the new transition table 612 in step 86. Instep 88, a timer is set, so that an analysis of a transition may betriggered when no reports regarding that transition have been receivedfor a certain amount of time. The lack of reports being received for acertain amount of time may be indicative that the transition has beencompleted. The transition timer 618 may be used for this purpose. In oneembodiment, a predetermined time of 90 seconds is used as a value forthe transition timer 618, which allows for reception of the reportsassociated with a topology change. Alternatively, a differentpredetermined time could be used depending upon the number of switchesin a network, or on other network characteristics.

[0067] If either port is involved in a transition, then in step 90 it isdetermined whether both ports are involved in different transitions. Ifso, then both timers for the different transitions are stopped (step96), the transition table merger 624 is invoked to merge the twotransition tables of the different transitions, (step 98), the report isentered into the resulting merged transition table (step 98), and thetimer for the merged transition table is reset and started (step 99).

[0068] If both ports are not involved in different transitions, thetimer for the relevant transition is stopped (step 92), the report isentered into the relevant transition table (step 93), and the timer isreset to the initial value and restarted (step 94). Because the timer ofa particular transition is reset when a relevant report for thattransition is received, the timer typically times out only when acertain amount of time has passed in which no relevant reports have beenreceived for that particular transition.

[0069] Operation of one embodiment of the transition analyzer 620 isshown in FIG. 10A. The transition analyzer 620 is triggered (step 102)when the transition timer 618 for a particular transition times out(step 100). Accordingly, the total number of reported events is comparedto the expected number for the transition under analysis (step 104). Ifthere are a sufficient number of reported events (step 106), then trendanalysis is performed to create a new transition table with conflictsresolved (step 108). If necessary, the trend analysis may be furtheriterated (step 130). If there are not a sufficient number of events,then it is likely that the timer is too short, or there is some othertype of faulty termination (step 136). Accordingly, discovery is invokedin which the devices having the ports involved in the transition underanalysis (step 138), and the results of the discovery may be used todetermine the current connections (step 139). Discovery, in thiscontext, refers to querying the appropriate devices or ports directly toobtain information regarding their connectivity. From either step 130 orstep 139, the process continues to step 132, in which the relevantdevices (also referred to as circuits) of the network are reconfiguredto conform with the current connections. In step 134, the transition isterminated.

[0070] Another embodiment of the transition analyzer 620 is shown inFIG. 10B. As shown in FIG. 10B, the analysis may be triggered withoutregard to the total number of expected reports, and trend analysis maybe performed whenever the transition timer times out (step 100).

[0071]FIG. 11 shows detail of one embodiment of the trend analysis (step108). For a given port X to port Y connection, the trend analysis isinitiated (step 110). The flow diagram of FIG. 11 may then be repeatedfor each port combination in the transition table. There are two“direct” locations within the transition table 612 with respect to portX and port Y, location X-Y and location Y-X. From the data in each ofthese locations, an implication may be created with respect to whetherthe ports X and Y are connected. For example, if both locations areconfirmed not connected (0), then it is relatively certain that there isnot a connection between ports X and Y. Other combinations may also beindicative of the actual status, as shown in FIG. 12, which shows detailof one embodiment of the direct state machine 632. In step 112, the X-Yand Y-X values with in the transition table are input to the directstate machine, and the direct state machine 632 returns a result, eitherconfirmed not connected, confirmed connected, or undetermined (step112). From the results returned from the direct state machine 632, thestatus of the possible port X-portY connection may be resolved.

[0072] Additionally other locations of the transition table may be usedto infer a result with respect to the connectivity of port X and port Y.For example, if port Z is connected to port A and port Z is alsoconnected to port B, it may be inferred that port A is connected to portB. Also, if port Z is not connected to port A and port Z is connected toport B, it may be inferred that port A is not connected to port B.Moreover, if it is known that there are only two links in total, then ifport Z is not connected to port A and port Z is not connected to port B,then it may be inferred that port A is connected to port B. If, however,there may be three or more links, then no information is gained. FIG. 13shows the inference state machine 634, used when it is known that thereare no more than two links. FIG. 14 shows the inference state machine636 that may be used when it is known or anticipated that there are morethan two links.

[0073] More than two links may be known or anticipated as a result of atransition having already accumulated a certain number of links prior toa beginning of the transition being analyzed. Additionally, interimresults of the trend analysis may be monitored to determine whetherthere is an indication that more than two links may be anticipated. Onemanner in which to achieve this is to build connectivity sets whichrepresent potential links, during trend analysis. These connectivitysets may be referred to as segments. If more than two segments existduring the trend analysis, it may be determined that more than two linksare involved.

[0074] Accordingly, it is possible to perform a first portion of thetrend analysis using inference state machine 634 for two links, andsecond portion of the same trend analysis using inference state machine636 for more than two links.

[0075] After it is determined whether more than two links areanticipated (step 114), then the appropriate inference state machine634, 636 may be used together with other relevant locations of thetransition table, to create a resulting inference for connection betweenport A and port B. The other relevant locations of the transition tableare typically the locations which represent an intersection betweeneither the reporting port and another port, or between the neighbor portand another port. However, certain locations may be deemed to be notrelevant by the isolated ports module 628. Generally, an isolated portis one that has no indication of being connected to other ports, such asa port that has recently provided a “lost all” report.

[0076] In one embodiment, specifically represented in FIG. 11, a votingscheme is used as a result of the direct analysis (step 112) and theinference analysis (step 116). In this voting scheme, two votes areprovided for one of the three states (connected, not connected, orundetermined) as a result of the direct analysis (step 112), and asingle vote for each relevant location is provided for one of the threestates as a result of the inference analysis (step 116). The votes arethen evaluated and the X-Y and Y-X locations of the transition table areupdated accordingly (step 118). If desired, the trend analysis may befurther iterated to resolve any remaining ambiguities (step 119).

[0077]FIG. 15 shows one approach to performing the vote evaluation ofstep 118. In step 120, the process is started. In step 121, it isdetermined whether the number of yes votes (connected) is greater thanthe number of no votes (not connected). If so, the process continues tostep 122, where it is determined whether the yes votes represent amajority of all votes with respect to the port A, port B pair. If so,then the X-Y and Y-X locations are updated to a confirmed connected (1)state in step 123. If there are not more yes votes than no votes (step121), then it is determined whether the number of no votes is greaterthan the number of yes votes (step 124). If so, then in step 125 it isdetermined whether the no votes represent a majority of all votes. Ifso, then the X-Y and Y-X locations are updated to a confirmed notconnected (0) state in step 126. If there are an equal number of yesvotes and no votes, or if the number of yes votes or the number of novotes does not represent a majority of the votes, then it may be becausethere is a significant amount of uncertainty in the analysis.Accordingly, in step 128 the X-Y and Y-X locations are both updated toan undetermined (4) state.

[0078]FIG. 16 shows a process flow diagram for one embodiment of trendanalysis iteration step 119 of FIG. 11. In step 150, it is determinedwhether the yes votes are consistent with the no votes. If there are noinconsistencies, then no further iteration is performed. If there areinconsistencies, then it is determined whether there are a significantnumber of high majority yes votes (step 152). The significant number maybe a predetermined number or percentage, for example more than 50% ofall votes. If there are a significant number of high majority yes votes,then selected low majority votes may be changed (step 154), and theprocess returned to step 150. For example, it may be desirable to firstchange the lowest majority votes, and further iterate the process.

[0079] If there are not a significant number of high majority yes votes,then in step 156 an unplaced port may selected. An unplaced port is onewhich does not belong to a link following the vote evaluation of step118. Potential ending links (a source or destination of a connection)for the unplaced port are determined in step 158 and an excluded portslist is built from the potential ending links for which a no voteexisted in the transition table (step 160). Step 162 iterates thebuilding of excluded ports lists for other unplaced ports. Then, in step164, the excluded ports lists are compared to determine unplaced portswhich have the same excluded ports lists. Those ports with similarexcluded ports lists are merged into a new link, and the transitiontable is updated accordingly (step 164). The yes votes may then beevaluated again (step 150) to determine whether further iteration isrequired. Accordingly, the topology manager 60 is able to effectivelydetermine the network configuration in the presence of a significantamount of conflicting information.

[0080]FIG. 17A illustrates an example of a transition table 612, for anewly-created connection among ports A, B, and C, prior to trendanalysis. As indicated by the contents of the transition table 612, thetopology manager 60 in this example has received reports that port A isconnected to both port B and port C, and that port C is connected toport A. For example, port A may have generated reports “nn.B” and“nn.c,” and port C may have generated report “nn.A.” No reports havebeen received yet from port B, and the report “nn.B” has not yet beenreceived from port C.

[0081] Subsequent to trend analysis, the transition table 612 of FIG.17A would appear as shown in FIG. 17B. In particular, in accordance withstep 112 of FIG. 11, the direct state machine 632 is used to provide twovotes with respect to the connection status of each pair of ports. Theentry in location A-B is a “1”, and the entry in location B-A is a “6”,so the direct A-B connection result is two votes for confirmed connected“1”. Additionally, in accordance with step 116, the indirect statemachine 634 is used to provide a single vote with respect to theconnection status of the AB port pair. In particular, because the entryin location C-A is a “1” and the entry in location C-B is a “6”, theindirect A-B connection result is one more vote for confirmed connected“1”. Therefore, the entry in location B-A has been changed from a “6” inFIG. 17A to a “1” in FIG. 17B. Similar changes are made to the otherlocations of FIG. 17B and as a result, the ambiguities associated withthe incomplete status of FIG. 17A have been resolved.

[0082] As described above, a transition table may be created for eachtransition among ports of a communications network, based upon reportsreceived from elements of the communications network. The transitiontable includes locations that directly relate the connectivity of afirst port with respect to a second port, as well as locations thatrelate the connectivity of other ports. The contents of the transitiontable are evaluated to determine the likely configuration of thecommunications network, even in the presence of contradictory orincomplete data. State machines may be used to resolve contradictorydata within the transition table, by providing a likely connectionoutput based upon different entries within the transition table. Avoting scheme may also be used to evaluate the outputs of the statemachines and update the transition table when appropriate, and theupdated transition table may also be evaluated.

[0083] Having thus described at least one embodiment of the invention,various alterations, modifications, and improvements will readily occurto those skilled in the art. Such alterations, modifications, andimprovements are intended to be within the spirit and scope of theinvention. Accordingly, the foregoing description is by way of exampleonly, and not intended to be limiting. The invention is limited only asdefined in the following claims and the equivalents thereto.

What is claimed is:
 1. An apparatus for tracking a configuration of aplurality of ports of a communications network, comprising: an eventstream filter having an input that receives a plurality of reports fromthe communications network, and an output that provides data associatedwith at least one transition of the communications network; at least onetransition table, each of which corresponds to a respective one of theat least one transition of the communications network; and a transitionmanager, having an input that receives data of the at least onetransition table, and an output that provides a link list indicative ofthe configuration of the plurality of ports based upon the data of theat least one transition table.
 2. The apparatus of claim 1, wherein thetransition manager includes: a state machine having an input thatreceives data from locations of a first table of the at least onetransition table that directly relates to a first port and a second portof the communications network, and an output that provides an indicationof whether the first port is connected to the second port; and atransition analyzer, having a first input that receives data of thefirst transition table, a second input that receives the output of thestate machine, and an output that represents a likelihood of aconnection between the first port and the second port.
 3. The apparatusof claim 1, wherein the transition manager includes: a state machinehaving an input that receives data from locations of a first table ofthe at least one transition table that do not directly relate to a firstport and a second port of the communications network, and an output thatprovides an indication of whether the first port is connected to thesecond port; and a transition analyzer, having a first input thatreceives data of the first transition table, a second input thatreceives the output of the state machine, and an output that representsa likelihood of a connection between the first port and the second port.4. The apparatus of claim 1, wherein the transition manager includes atransition analyzer that creates votes regarding a possible connectionbetween a first port and a second port of the communications networkbased upon the at least one transition table, the transition analyzerevaluating the votes to determine a likelihood of a connection betweenthe first port and the second port.
 5. The apparatus of claim 4, whereinthe transition analyzer includes means for updating data within the atleast one transition table based upon the votes to provide updated data,the transition analyzer evaluating the updated data to determine thelikelihood of a connection between the first port and the second port.6. The apparatus of claim 1, wherein the transition manager includes atransition table manager having an output that creates a new transitiontable when the at least one transition table does not include anexisting transition table that is associated with a port of thecommunications network included in one of plurality of reports.
 7. Theapparatus of claim 1, wherein: the at least one transition tableincludes a first transition table associated with a first port includedin one of the plurality of reports, and a second transition tableassociated with a second port included in the one of the plurality ofreports; and the transition manager includes a transition table mergerhaving an output creates a merged transition table by merging the firsttransition table with the second transition table.
 8. The apparatus ofclaim 1, wherein: the at least one transition table includes a pluralityof locations, each of the plurality of locations containing a statevalue that represents a connection state of a first port of thecommunications network with respect to a second port of thecommunications network; and each of the plurality of locations ispopulated with one of at least three states.
 9. The apparatus of claim8, wherein the at least three states includes: a first state indicativeof a confirmed connection between the first port and the second port; asecond state indicative of a confirmed lack of a connection between thefirst port and the second port; and at least one third state indicativeof an uncertainty with respect to a possible connection between thefirst port and the second port.
 10. The apparatus of claim 1, whereinthe transition manager includes a transition timer having an output thattriggers initiating a transition analysis of a selected transition bythe transition manager following a predetermined amount of time fromwhen a report associated with the selected transition was received bythe event stream filter.
 11. A method for tracking a configuration of aplurality of ports of a communications network, comprising the steps of:(a) determining whether any of the plurality of ports are involved in atransition with respect to the configuration of the plurality of ports;(b) collecting data associated with the transition; and (c) analyzingthe data associated with the transition to determine the configurationof the plurality of ports.
 12. The method of claim 11, wherein step (b)includes receiving a report that includes an indication that a reportingport of the communications network has a particular connection statewith respect to a neighbor port of the communications network.
 13. Themethod of claim 12, wherein: step (b) includes entering information fromthe report into a transition table associated with one of the reportingport and the neighbor port; and step (c) includes analyzing thetransition table.
 14. The method of claim 13, wherein the step ofanalyzing includes determining a likelihood of a connection between thereporting port and the neighbor port based upon data within locations ofthe transition table that directly relate to the reporting port and theneighbor port.
 15. The method of claim 13, wherein the step of analyzingincludes determining a likelihood of a connection between the reportingport and the neighbor port based upon locations of the transition tablethat do not directly relate to the reporting port and the neighbor port.16. The method of claim 13, wherein the step of analyzing includes thesteps of: providing a first number of votes based upon data within thelocations of the transition table that directly relate to the reportingport and the neighbor port; providing a second number of votes basedupon data within the locations of the transition table that do notdirectly relate to the reporting port and the neighbor port; andevaluating the first number of votes and the second number of votes todetermine a likelihood of a connection between the reporting port andthe neighbor port.
 17. The method of claim 16, wherein the step ofevaluating includes the steps of: updating the data within the locationsof the transition table that directly relate to the reporting port andthe neighbor port based upon the first number of votes and the secondnumber of votes to provide updated data; and determining the likelihoodof a connection between the reporting port and the neighbor port basedupon the updated data.
 18. The method of claim 12, wherein: step (b)includes creating a transition table containing the data associated withthe transition when a previous transition table associated with at leastone of the reporting port and the neighbor port does not previouslyexist; and step (c) includes analyzing the transition table.
 19. Themethod of claim 18, wherein step (b) includes creating a transitiontable having locations populated with one of at least three statesincluding a state indicative of uncertainty.
 20. The method of claim 12,wherein: step (b) includes creating a merged transition table by merginga first transition table associated with the reporting port with asecond transition table associated with the neighbor port; and step (c)includes analyzing the merged transition table.
 21. The method of claim12, wherein the step of receiving the report includes receiving a newneighbor report that includes an indication that a reporting port of thecommunications network has a connection to a neighbor port of thecommunications network.
 22. The method of claim 12, wherein the step ofreceiving the report includes receiving a lost neighbor report thatincludes an indication that a reporting port of the communicationsnetwork has lost a connection with a neighbor port of the communicationsnetwork.
 23. The method of claim 11, wherein step (c) includes waiting apredetermined amount of time subsequent to step (b) prior to analyzingthe data associated with the transition.
 24. An apparatus for tracking aconfiguration of a plurality of ports of a communications network, theapparatus comprising: first means for determining whether any of theplurality of ports are involved in a transition with respect to theconfiguration of the plurality of ports; second means for collectingdata associated with the transition; and third means for analyzing thedata associated with the transition to determine the configuration ofthe plurality of ports.
 25. The apparatus of claim 24, wherein thesecond means includes means for receiving a report that includes anindication that a reporting port of the communications network has aparticular connection state with respect to a neighbor port of thecommunications network.
 26. The apparatus of claim 25, wherein: thesecond means includes means for entering information from the reportinto a transition table associated with one of the reporting port andthe neighbor port; and the third means includes means for analyzing thetransition table.
 27. The apparatus of claim 26, wherein the means foranalyzing includes means for determining a likelihood of a connectionbetween the reporting port and the neighbor port based upon data withinlocations of the transition table that directly relate to the reportingport and the neighbor port.
 28. The apparatus of claim 26, wherein themeans for analyzing includes means for determining a likelihood of aconnection between the reporting port and the neighbor port based uponlocations of the transition table that do not directly relate to thereporting port and the neighbor port.
 29. The apparatus of claim 26,wherein the means for analyzing includes: means for providing a firstnumber of votes based upon data within the locations of the transitiontable that directly relate to the reporting port and the neighbor port;means for providing a second number of votes based upon data within thelocations of the transition table that do not directly relate to thereporting port and the neighbor port; and means for evaluating the firstnumber of votes and the second number of votes to determine a likelihoodof a connection between the reporting port and the neighbor port. 30.The apparatus of claim 29, wherein the means for evaluating includes:means for updating the data within the locations of the transition tablethat directly relate to the reporting port and the neighbor port basedupon the first number of votes and the second number of votes to provideupdated data; and means for determining the likelihood of a connectionbetween the reporting port and the neighbor port based upon the updateddata.
 31. The apparatus of claim 25, wherein: the second means includesmeans for creating a transition table containing the data associatedwith the transition when a previous transition table associated with atleast one of the reporting port and the neighbor port does notpreviously exist; and the third means includes means for analyzing thetransition table.
 32. The apparatus of claim 31, wherein the secondmeans includes means for creating a transition table having locationspopulated with one of at least three states including a state indicativeof uncertainty.
 33. The apparatus of claim 25, wherein: the second meansincludes means for creating a merged transition table by merging a firsttransition table associated with the reporting port with a secondtransition table associated with the neighbor port; and the third meansincludes means for analyzing the merged transition table.
 34. Theapparatus of claim 25, wherein the report includes an indication that areporting port of the communications network has a connection to aneighbor port of the communications network.
 35. The apparatus of claim25, wherein the report includes an indication that a reporting port ofthe communications network has lost a connection with a neighbor port ofthe communications network.
 36. The apparatus of claim 24, furthercomprising means for triggering the third means a predetermined amountof time subsequent to the second means collecting the data associatedwith the transition.